zeistantillesfandomcom-20200213-history
Una introducción a pywikipediabot
Esta guía pretende ser una introducción que explique paso por paso como configurar y usar un bot mediante el Python Wikipediabot Framework en Wikia. Si sabes algo que añadir o corregir házmelo saber y actualizaré la entrada. Empecé usando pywikipediabot en Windows durante un tiempo y después me pasé al Mac. ¿Qué es Pywikipediabot? Pywikipedia bot es un conjunto de herramientas muy potentes escritas en el lenguaje de programación Python que sirve para realizar tareas automáticas en los wikis. Se maneja mediante una interfaz de Línea de Comandos, que en principio puede resultar más difícil que AutoWikiBrowser, pero por contra puede hacer muchas más cosas que AWB y la interfaz de comandos es más ágil una vez que te has familiarizado con su funcionamiento. Preparando el bot Primero necesitas disponer de una cuenta en Wikia para que actúe como la cuenta del bot. El Staff de Wikia puede dar el flag de bot una vez que tu comunidad haya hablado y esté de acuerdo con el uso del bot (normalmente en un foro o en una entrada de blog). El flag de bot sirve para ocultar las ediciones del bot en y para que el sistema reconozca al bot como un programa informático y no como un usuario humano. Solicita el flag de bot en tu wiki mediante Especial:Contactar después de haberlo acordado en tu comunidad y de haberlo probado con éxito. Recuerda que el flag de bot no es necesario para que el bot funcione. Instalación Necesitas dos cosas: #Lenguaje Python #Los scripts de pywikipediabot Python en Windows *Los usuarios de Windows tienen que instalar la última versión de Python para Windows desde: http://www.python.org/download/ *Descarga e instala la última versión cuyo número empiece por 2''' (la última versión a fecha de este blog es '''2.7.3). Atención: Pywikipediabot no soporta la versión 3 - no la descargues y no la instales a menos que la necesites para otra cosa. :*Se recomienda instalarlo en una ruta corta, en tu unidad de disco duro principal, por ejemplo C:\Python27 Python en Mac / Linux *Si eres usuario de Mac o Linux no te hace falta descargarte el lenguaje Python pues ya lo tienen instalado por defecto. En ambos sistemas tendrás que escribir python antes de cada comando. Descarga de pywikipediabot *Descarga el paquete completo de scripts desde: http://tools.wmflabs.org/pywikibot/ (archivo zip) :*Puedes ver el código fuente y descargar los scrpits que te interesen desde http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ *Para los usuarios de Windows, abre el archivo zip y coloca todos los archivos (incluidas las carpetas y sus correspondientes archivos) en C:\Python27\pywikipedia *Para los usuarios de Mac colócalos en la carpeta pywikipedia en tu carpeta de usuario. Instalando Notepad++ (opcional) Aunque no es imprescindible, Notepad++ es un editor de texto de licencia libre que utiliza expresiones regulares para buscar y reemplazar patrones en un texto y resaltar la sintaxis propia del lenguaje usado, por lo que puede ser muy útil para componer una lista de páginas para borrar. Lo puedes descargar aquí. Cuando edites los scripts y archivos con los que va a trabajar el bot, utiliza la codificación "UTF-8" en el Notepad++ o en tu bloc de notas. Generando los archivos family.py y user-config.py Para que el sfotware instalado reconozca que wiki y que cuenta de usuario tiene que usar hay que crear dos archivos: el archivo de la wiki que siempre termina en family.py y se guarda en la carpeta families y user-config.py que se guarda en la carpeta pywikipedia #Ejecuta la la línea de comandos. #*Los usuarios de Windows tienen que ir a Inicio, clic en Ejecutar y escribir "cmd.exe" y pulsar enter. #*Los usuarios de Mac tienen que ir a la carpeta de Aplicaciones, Utilidades y ejecutar el Terminal. #*Los usuarios de Linux tienen que presionar alt-f2 y escribir el nombre de su emulador de terminal favorito (por ejemplo "xtern"). #En la línea de comandos sitúate en la carpeta pywikipedia. #*En Windows, el comando es cd, así que si extrajiste todos los scripts a C:\Python27\pywikipedia escribe '''cd C:\Python27\pywikipedia y pulsa enter. #*En Mac y Linux, el comando también es cd, la ruta de archivo es diferente, en Windows es \ mientras que en Mac y Linux usan /. #Una vez que estás en el directorio de pywikipedia, ejecuta el script generate_family_file.py #*En windows simplemente escribe generate_family_file.py (windows asocia la extensión de archivo .py con python si lo has instalado correctamente). Los usuarios de Mac y Linux tienen que escribir python generate_family_file.py. Si presionas las teclas de las flechas te inserta todas las líneas de comando que hayas escrito antes. Una vez iniciado el script, sigue las instrucciones. #*Si vas a trabajar en varios wikis, tendrás que generar un archivo family.py para cada una, pero no es necesario que lo hagas ahora. #*Siéntete libre de contestar "no" a la pregunta de "Do you want to generate interwiki links?" si solo vas a trabajar en la versión de tu idioma. #Ejecuta el script generate_user_files.py - te mostrará tres opciones, escoge la opción 1, a continuación te mostrará un listado de wikis y te preguntará en cual quieres trabajar, escribe el número del archivo family.py que acabas de generar, después te preguntará el código del idioma del wiki, para español tendrás que poner es, después te pedirá el nombre de usuario de cuenta bot y por último si quieres la versión pequeña Small o extendida Extended, selecciona la pequeña insertando una s. También puedes generar el archivo de families y el user-config.py manualmente, siempre que guardes los archivos con la codificación UTF-8. Añadiendo una cuenta de administrador (opcional) Si quieres añadir una cuenta de administrador (solo los administradores pueden borrar páginas), tienes que editar tu archivo user-config.py con un editor de texto, (usa un bloc de notas o Notepad++ ). Abre el archivo user-config.py que encontrarás en la carpeta de pywikipedia. Deberías de ver un archivo similar a esto: # -*- coding: utf-8 -*- family = 'starwars' mylang = 'es' usernames'starwars''es' = u'R2-D6t' Para añadir una cuenta de administrador a este archivo, añade una línea debajo llamada sysopnames con la misma sintaxis que la línea de usernames, esto es: sysopnames'starwars''es' = u'Zeist Antilles' Usernames y sysopnames pueden ser el mismo usuario si le das permiso de administrador a tu bot. Recuerda que entonces las acciones administrativas que haga el bot serán ocultadas en Cambios Recientes si el bot tiene el flag de bot. Login.py (iniciando sesión) Ahora ya estás listo para ver si el bot funciona. Vuelve a tu línea de comandos y ejecuta *login.py en Windows *python login.py en Mac o Linux Introduce la contraseña de la cuenta de tu bot, el script debería devolver: Logging in to starwars:es as R2-D6t via API. Should be logged in now Cambiando de wikis Si en algún momento quieres poner a trabajar a tu bot en otra wiki, ejecuta generate_family_file.py para generar un nuevo archivo de family y edita el archivo user-config.py para cambiar la family de la wiki antigua por la nueva. Por ejemplo si quieres cambiar el archivo de arriba por el de Harry Potter Wiki: # -*- coding: utf-8 -*- family = 'harrypotter' mylang = 'es' usernames'harrypotter''es' = u'R2-D6t' sysopnames'starwars''es' = u'Zeist Antilles' ¿Y ahora qué? Ahora que has instalado el bot, no deberías necesitar volver tocar la mayoría de los archivos de configuración. Pywikipediabot contiene una gran cantidad de distintos scripts que pueden hacer diferentes tareas en tu wiki, tendrás que encontrar la herramienta adecuada y leer las instrucciones de como usarla. Hay una gran cantidad de ejemplos en las páginas del manual en mediawiki.org. Si necesitas parar el bot mientras está trabajando puedes pulsar Ctrl C. A continuación unos ejemplos de lo que puedes hacer: redirect.py *Ejecuta redirect.py double para arreglar todas las . *Para borrar las ejecuta redirect.py broken. category.py *Para cambiar categorías ejecuta category.py move te pedirá la categoría antigua y después la nueva para mover todas las páginas a la nueva categoría. Es mejor si la nueva categoría no esta creada, así el bot hará todo el trabajo copiando todo el contenido de la categoría antigua a la nueva. *Para eliminar una categoría ejecuta category.py remove te pedirá la categoría a eliminar y la quitará de todas las páginas que la tengan. replace.py Ejecutar replace.py te puede servir para remplazar palabras. Al principio hay que comprobar cada edición, por ejemplo si quieres sustituir "cancion" por "canción", asegúrate de que no cambie también "canciones" por "canciónes". Para evitar esto hay que poner un espacio al final así: replace.py "cancion " "canción " -summary:ortografía -start:! La variable summary es para el resumen de edición que quieres que deje el bot y start es para comenzar alfabéticamente por letra del título que le indiques, si pones una signo de exclamación empieza por la primera página de la wiki. Borrar imágenes sin uso en masa Para borrar ejecutar: pagegenerators.py -unusedfiles -log El bot generará una lista de los archivos sin usar y la guardará en el archivo "pagegeneratos" en la carpeta "logs" de pywikipedia, a continuación: *Convierte la lista para que quede en formato: # Archivo:Nombre del archivo.jpg *Guarda la lista en un archivo de texto (codificación UTF-8) en la carpeta de pywikipedia y ejecuta delete.py -file:"NOMBRELOG.txt" Igualmente con las se puede obtener la lista con: pagegenerators.py -uncatfiles -log *-unusedfiles:500 ó -uncatfiles:500 generará una lista de 500 archivos como máximo. Hay que tener en cuenta que algunas imágenes como el favicon y las que estén solo en uso en páginas de mediawiki aparecerán listadas como imágenes sin uso, aunque realmente están siendo usadas en páginas de mediawiki. Categorizar imágenes *Para categorizar imágenes que en su página de descripción enlacen a una misma página, y por lo tanto tengan un tema en común ejecuta pagegenerators.py pagegenerators.py -ref:"Nombre de un artículo" -namespace:6 -log *Genera y guarda una lista de imágenes que enlazan a un artículo desde su página de descripción en el archivo pagegenerators.log, a continuación se guarda la lista en un archivo de texto (recuerda codificación UTF-8) en la carpeta de pywikipedia y se ejecuta: category.py add -file:"NombreArchivo.txt" y te preguntará la categoría que quieres añadir para añadirla a las imágenes listadas en el archivo de texto. Añadir una plantilla de aviso *Por ejemplo añadir una plantilla de aviso al comienzo de la página que solicite categorizar los artículos que están sin categorizar ejecuta add_text.py. add_text.py -uncat -text: -up Intercambiar imágenes *Por ejemplo una imagen con un nombre inapropiado colocada en muchas páginas ejecuta image.py image.py ImagenAntigua.jpg ImagenNueva.jpg Quitar una imagen de las páginas image.py TelosDevastador.jpg Quitar una plantilla de las páginas *Ejecuta template.py template.py -remove NombreDeLaPlantilla Y muchas cosas más, si tienes preguntas o quieres aportar tus conocimientos para ayudar a los demás siéntete libre de dejarlo en los comentarios, entre todos ayudaremos a todos. Category:Content Category:Bot